package com.xiaoq.shop.vo;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.xiaoq.shop.entity.TicketTag;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.List;

/**
 * Created by chenjh on 2017/11/3.
 */
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE)
@JsonInclude(value = JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class SKUTicketVo implements Serializable{
    private static final long serialVersionUID = 8841340342643486314L;

    @ApiModelProperty(name = "id", value = "sku 主键")
    private String id; //sku 主键

    @ApiModelProperty(name = "shopId", value = "店（景区）ID", position=10)
    private String shopId; //店（景区）ID

    @ApiModelProperty(name = "spuCode", value = "SPU编码", position=20)
    private String spuCode; //SPU编码

    @ApiModelProperty(name = "spuName", value = "SPU名称（冗余存储）", position=30)
    private String spuName; //SPU名称（冗余存储）

    @ApiModelProperty(name = "skuCode", value = "SKU编码", position=40)
    private String skuCode; //SKU编码

    @ApiModelProperty(name = "price", value = "原始价格（在商品发布时设置）", position=50)
    private double price;  //原始价格（在商品发布时设置）

    @ApiModelProperty(name = "discountPrice", value = "折扣价格（在限时折扣中设置）", position=60)
    private double discountPrice; //折扣价格（在限时折扣中设置）

    @ApiModelProperty(name = "specifications", allowableValues = "100,200,300,400,500,600",value = "票的类型code.成人票(100), 儿童票(200), 学生票(300),老人票(400),组合套餐(500),其他票(600)", position=70)
    private String specifications; //票的类型（"成人票", "儿童票", "学生票","老人票","组合套餐","其他票"）

    @ApiModelProperty(name = "specificationsName",allowableValues = "成人票, 儿童票, 学生票,老人票,组合套餐,其他票", value = "票的类型名称（成人票, 儿童票, 学生票,老人票,组合套餐,其他票）", position=70)
    private String specificationsName; //票的类型名称

    /**
     * 是否限购（门票。 0：不限购， 其他限购（人数））
     */
    @ApiModelProperty(name = "max2PermitPurchased", value = "是否限购（门票。 0：不限购， 其他限购（张数））", position=90)
    private Integer max2PermitPurchased;

    /**
     *门票-说明标签
     */
    @ApiModelProperty(name = "ticketLabels", value = "门票-说明标签[1: 16:00前可订今日票, 2: 随时退]", position=100)
    private List<TicketTag> ticketLabels;

    /**
     *门票-预定须知
     */
    @ApiModelProperty(name = "bookNotices", value = "门票-预定须知", position=110)
    private List<TicketTag> bookNotices;

    /**
     * 商品销售状态  1:上架中;0:已下架;
     */
    @ApiModelProperty(name = "saleState", value = "商品销售状态  1:上架中;0:已下架;", position=120)
    private int saleState = 1 ;


    /**
     * 门票预售期（即可提前预定的天数）
     */
    @ApiModelProperty(name = "preSalePeriod", value = "门票预售期（即可提前预定门票的天数）", position=130)
    private int preSalePeriod;

    /**
     * 能否购买当日景区的票
     */
    @ApiModelProperty(name = "canOrderTodayTicket", value = "能否购买当日景区的票，1:可以，0:不可以", position=140)
    private int canOrderTodayTicket = 1;

    @ApiModelProperty(name = "stocks", value = "库存", position=150)
    private Integer stocks;

    @ApiModelProperty(name = "totalSale", value = "已卖出的数量", position=160)
    private Integer totalSale;

    @ApiModelProperty(name = "sortIndex", value = "sortIndex排序的顺序号，默认（0），降序排序，", position=170)
    private int sortIndex = 0;

    @ApiModelProperty(name = "createdAt", value = "创建时间", position=170)
    private Long createdAt;

	/**
	 * 平台发码（0：自有平台，其它id: 见api/v1/sellPlatform接口：第三方平台（如智游宝 等等））
	 */
	@ApiModelProperty(name = "sellPlatform", value = "平台发码（0：自有平台，1：第三方平台（如智游宝 等等））", position=180)
	private String sellPlatform;
	/**
	 *  sellPlatform 为第三方平台才有的  第三方商品的 id
	 */
	@ApiModelProperty(name = "sellPlatformGoodsId", value = "sellPlatform 为第三方平台才有的  第三方商品的 id", position=190)
	private String sellPlatformGoodsId;

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getShopId() {
		return shopId;
	}

	public void setShopId(String shopId) {
		this.shopId = shopId;
	}

	public String getSpuCode() {
		return spuCode;
	}

	public void setSpuCode(String spuCode) {
		this.spuCode = spuCode;
	}

	public String getSpuName() {
		return spuName;
	}

	public void setSpuName(String spuName) {
		this.spuName = spuName;
	}

	public String getSkuCode() {
		return skuCode;
	}

	public void setSkuCode(String skuCode) {
		this.skuCode = skuCode;
	}

	public double getPrice() {
		return price;
	}

	public void setPrice(double price) {
		this.price = price;
	}

	public double getDiscountPrice() {
		return discountPrice;
	}

	public void setDiscountPrice(double discountPrice) {
		this.discountPrice = discountPrice;
	}

	public String getSpecifications() {
		return specifications;
	}

	public void setSpecifications(String specifications) {
		this.specifications = specifications;
	}

	public String getSpecificationsName() {
		return specificationsName;
	}

	public void setSpecificationsName(String specificationsName) {
		this.specificationsName = specificationsName;
	}

	public Integer getMax2PermitPurchased() {
		return max2PermitPurchased;
	}

	public void setMax2PermitPurchased(Integer max2PermitPurchased) {
		this.max2PermitPurchased = max2PermitPurchased;
	}

	public List<TicketTag> getTicketLabels() {
		return ticketLabels;
	}

	public void setTicketLabels(List<TicketTag> ticketLabels) {
		this.ticketLabels = ticketLabels;
	}

	public List<TicketTag> getBookNotices() {
		return bookNotices;
	}

	public void setBookNotices(List<TicketTag> bookNotices) {
		this.bookNotices = bookNotices;
	}

	public int getSaleState() {
		return saleState;
	}

	public void setSaleState(int saleState) {
		this.saleState = saleState;
	}

	public int getPreSalePeriod() {
		return preSalePeriod;
	}

	public void setPreSalePeriod(int preSalePeriod) {
		this.preSalePeriod = preSalePeriod;
	}

	public int getCanOrderTodayTicket() {
		return canOrderTodayTicket;
	}

	public void setCanOrderTodayTicket(int canOrderTodayTicket) {
		this.canOrderTodayTicket = canOrderTodayTicket;
	}

	public Integer getStocks() {
		return stocks;
	}

	public void setStocks(Integer stocks) {
		this.stocks = stocks;
	}

	public Integer getTotalSale() {
		return totalSale;
	}

	public void setTotalSale(Integer totalSale) {
		this.totalSale = totalSale;
	}

	public int getSortIndex() {
		return sortIndex;
	}

	public void setSortIndex(int sortIndex) {
		this.sortIndex = sortIndex;
	}

	public Long getCreatedAt() {
		return createdAt;
	}

	public void setCreatedAt(Long createdAt) {
		this.createdAt = createdAt;
	}

	public String getSellPlatform() {
		return sellPlatform;
	}

	public void setSellPlatform(String sellPlatform) {
		this.sellPlatform = sellPlatform;
	}

	public String getSellPlatformGoodsId() {
		return sellPlatformGoodsId;
	}

	public void setSellPlatformGoodsId(String sellPlatformGoodsId) {
		this.sellPlatformGoodsId = sellPlatformGoodsId;
	}
}